/* de Enige die echt nog niet werkt  = 3.6
 * De rest werkt prima (DENK IK)
 * FrankkieNL
 */

import javax.swing.JOptionPane;

public class Main {

  public Main() {
    //constructor
    int welkeLes = vraagInt("Welke Les?\n1\n2\n3\n5\nof 0 voor extra dingen");
   
    ////////LES1
    if (welkeLes == 1) {
      int welkeOpdr = vraagInt("Welke Opdracht?\n1) 1.1\n2) 1.2\n3) 1.3\n4) 1.4");
      if (welkeOpdr == 1) {
        new Opdracht1_1();
      }
      if (welkeOpdr == 2) {
        new Opdracht1_2();
      }
      if (welkeOpdr == 3) {
        new Opdracht1_3();
      }
      if (welkeOpdr == 4) {
        new Opdracht1_4();
      }
    }
    //////////////////////LES2
    if (welkeLes == 2) {
      int welkeOpdr = vraagInt("Welke Opdracht?\n1) 2.1\n2) 2.2\n3) 2.3\n4) 2.4\n4) 2.4\n5) 2.5");
      if (welkeOpdr == 1) {
        new Opdracht2_1();
      }
      if (welkeOpdr == 2) {
        new Opdracht2_2();
      }
      if (welkeOpdr == 3 ){
        new Opdracht2_3();
      }
      if (welkeOpdr == 4 ){
        new Opdracht2_4();
      }
      if (welkeOpdr == 5 ){
        new Opdracht2_5();
      }
      if (welkeOpdr == 6 ){
        new Opdracht2_6();
      }
    }
    /////////////////////LES3
    if (welkeLes == 3) {
       int welkeOpdr = vraagInt("1) 3.1\n2) 3.2\n3) 3.3\n4) 3.4\n5) 3.5\n6) 3.6 WERKT NIET !!");
      if (welkeOpdr == 1) {
        new Opdracht3_1();
      }
       if (welkeOpdr == 2) {
        new Opdracht3_2();
      }
        if (welkeOpdr == 3) {
        new Opdracht3_3();
      }
       if (welkeOpdr == 4) {
        new Opdracht3_4();
      }
       if (welkeOpdr == 5) {
        new Opdracht3_5();
      }
       if (welkeOpdr == 6) {
        new Opdracht3_6();
      }
    }
    ///////////////// LES 4
    if (welkeLes == 4){
      JOptionPane.showMessageDialog(null,"Nee");
      System.exit(0);
    }
    ///////////////// LES 5
    if (welkeLes == 5){
      int welkeOpdr = vraagInt("1) 5.1\n2) 5.2\n3) 5.3");
      if (welkeOpdr == 1){
        new Opdracht5_1();
      }
      if (welkeOpdr == 2){
        new Opdracht5_2();
      }
      if (welkeOpdr == 3){
        new Opdracht5_3();
      }
    }
    /////////////////EXTRA
    if (welkeLes == 0) {
      int welkeOpdr = vraagInt("1) double--\n2) priemgetallen\n3) PDA");
      if (welkeOpdr == 1) {
        new andere_dingen.MinDouble();
      }
      if (welkeOpdr == 2) {
        new andere_dingen.Priemgetal();
      }
      if (welkeOpdr == 3){
       new andere_dingen.PDARekenDing();
      }
    }
  }

  public static int facu(int getal) {
    //Berekend de faculteit
    int ans = 1;
    for (int loop = 1; loop <= getal; loop++) {
      ans = ans * loop;
    }
    return ans;
  }

  static double factor(int i) {
    //Berekend de facultijd
        if (i > 1)
            return (i * factor(i - 1));
        return 1;
    }

  static double fact(double i) {
    //Berekend de facultijd
        if (i > 1)
            return (i * fact(i - 1));
        return 1;
    }

  public static int vraagInt(String tekst) {
    int ans = 0;
    boolean goedgetal = false;
    String bericht = tekst;
    String foutmelding = "";
    do {
      bericht += "\n" + foutmelding;
      String intStr = JOptionPane.showInputDialog(null, bericht);
      if (intStr == null) {
        System.exit(0);
      }
      try {
        ans = Integer.parseInt(intStr);
        goedgetal = true;
      } catch (NumberFormatException e) {
        System.out.println("Fout: " + e);
        foutmelding = "Dat was geen correct getal";
      }
    } while (!goedgetal);
    return ans;
  }


  public static double vraagDouble(String tekst) {
    double ans = 0;
    boolean goedgetal = false;
    String bericht = tekst;
    String foutmelding = "";
    do {
      bericht += "\n" + foutmelding;
      String intStr = JOptionPane.showInputDialog(null, bericht);
      if (intStr == null) {
        System.exit(0);
      }
      try {
        ans = Double.parseDouble(intStr);
        goedgetal = true;
      } catch (NumberFormatException e) {
        System.out.println("Fout: " + e);
        foutmelding = "Dat was geen correct getal";
      }
    } while (!goedgetal);
    return ans;
  }

   public static double eMacht(double eenGetal) {
      System.out.println("eMacht");
        double ans = 0.0;
        double x = 0.0;
        int totHoever = 100;
        //double eenGetal = 3;
        //eenGetal = Main.vraagDouble("Vul maar in tot welke macht je e wilt weten\n(double) (3)\nvoor Wortel E vul in: 0.5");
        //Hoe groter totHoever is, hoe dichter het bij het juiste antwoord komt.
        //Maar als het te groot is krijg je: NaN
        for (x = 0; x < totHoever; x++) {
            ans += (Math.pow(eenGetal, x)) / Main.fact(x);
        }
        System.out.println(ans + "   Berekende antwoord");
        System.out.println(Math.pow(Math.E,eenGetal) + "   Goede Antwoord");
        return Math.pow(Math.E,eenGetal);
        //return ans;
    }


  public static void main(String[] args) {
    new Main();
  }
}
